package br.com.qualityempresa.core

import java.text.NumberFormat
import java.text.SimpleDateFormat

class StringFormattersUtils {

	static public String DATA_FORMATADO_YYYY_MM_DD = 'yyyy-MM-dd'
	static public String DATA_FORMATADO_HH_MM = 'HH:mm'
	
	
	static public Number converterMoedaFormatadoEmValor(String moedaFormatado) {
		def valor = 0
		try {
			valor = NumberFormat.getCurrencyInstance().parse(moedaFormatado.trim())
		} catch (Exception e) {
			System.out.println(e);
		}
		return valor
	}
	
	static public Number converterValorFormatadoEmValor(String valorFormatado) {
		def valor = 0
		try {
			valor = NumberFormat.getInstance().parse(valorFormatado.trim())
		} catch (Exception e) {
			System.out.println(e);
		}
		return valor
	}
	
	static public Date converterValorFormatadoEmData(String valorFormatado, String formato) {
		def valor = new Date()
		def formatDate = new SimpleDateFormat(formato)
		
		try {
			valor = formatDate.parse(valorFormatado.trim())
		} catch (Exception e) {
			System.out.println(e);
		}
		return valor
	}
	
	/**
	 * Formata o valor numerico em "0,00"
	 * @param valor
	 * @return
	 */
	static public String formatarValor(Number valor) {
		if (valor == null) {
			valor = 0.0
		}
		return NumberFormat.getInstance().format(valor).replaceAll("\\.", "")
	}
	
	/**
	 * Formata o valor numerico em "R$ 0,00"  
	 * @param valor
	 * @return
	 */
	static public String formatarMoeda(Number valor) {
		if (valor == null) {
			valor = 0.0
		}
		return NumberFormat.getCurrencyInstance().format(valor)
	}
	
	static public String formatarData(Date data, String formato) {
		def valor = new Date()
		def formatDate = new SimpleDateFormat(formato)
		
		return formatDate.format(data)
	}

}
